Personalized location information for mobile devices

ABSTRACT

Providing location information on a mobile device includes receiving signals from external devices. Each signal includes information that specifies a geographic location for the external device that has provided the signal. A geographic location for the mobile device is calculated by using the information contained in each of the received signals. A representation of the geographic location of the mobile device is generated. The representation of the geographic location is included within an electronic message that provides information describing a user of the mobile device to other users of an electronic communications system. The electronic message is transmitted to another device to provide an indication of the geographic location for the user to one of the other users of the electronic communications system.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.12/986,121, filed on Jan. 6, 2011, which is a divisional of U.S.application Ser. No. 12/581,669, filed on Oct. 19, 2009, and now issuedas U.S. Pat. No. 7,890,123, which is a divisional of U.S. patent Ser.No. 11/238,110, filed on Sep. 29, 2005, and now issued as U.S. Pat. No.7,606,580, which claims the benefit of priority to U.S. ProvisionalApplication No. 60/679,652, filed on May 11, 2005 and U.S. ProvisionalApplication No. 60/710,616 filed on Aug. 24, 2005. Each of theaforementioned applications and patents are hereby incorporated byreference in their entirety.

TECHNICAL FIELD

This application relates to the personalization of location informationfor mobile devices.

BACKGROUND

In instant-messaging applications, users may communicate with each otherby exchanging instant messages. An individual user may have a buddy listthat includes the names of other users, known as “buddies,” with whomthe user may communicate regularly. The user may send instant messagesto any of the buddies, as well as other users not included in the buddylist, that are logged on to their respective computing stations. Any oneof these buddies may store electronic content that can be shared withother users. For example, a buddy may store an “away” message that canbe provided as an auto-response to other users to indicate that thebuddy is presently away from his or her computing station or isotherwise unavailable to send and receive instant messages.

Away messages can serve several purposes. Many people use them to letothers, such as their buddies, know exactly where they are. Others useaway messages to provide creative expression, such as by publishing thelyrics of the song they just wrote or a funny quote they just heard in amovie. Recent studies have shown that individuals of certain age groups(such as college-aged adults) not only invest a fair amount of timecreating multiple away messages per day, but they also spend a greatdeal of time reading the away messages of their buddies.

A very common use of away messages is to post your current location oractivity so that buddies can easily keep track of where you are and beinformed enough to join in your activity if they are up to it. Usersoften trust this service as a place to keep their personal information,such as contact information, so their friends can get in touch with themat any time. They use it to share information such as links to pictures,web logs (blogs), funny articles, declarations of love to aboyfriend/girlfriend, a countdown until the day they graduate, and otherthings of value. It is a quick way to provide a glimpse into the user'slife and, in most cases, it also may provide a way to get moreinformation about the user if a buddy wants to spend the time to do so.

SUMMARY

In one general aspect, providing location information on a mobile deviceincludes receiving signals from external devices. Each signal includesinformation that specifies a geographic location for the external devicethat has provided the signal. A geographic location for the mobiledevice is calculated by using the information contained in each of thereceived signals. A representation of the geographic location of themobile device is generated. The representation of the geographiclocation is included within an electronic message that providesinformation describing a user of the mobile device to other users of anelectronic communications system. The electronic message is transmittedto another device to provide an indication of the geographic locationfor the user to one of the other users of the electronic communicationssystem.

Implementations may include one or more of the following features. Forexample, generating a representation of the geographic location mayinclude generating a representation of a location that is within athreshold distance from the calculated geographic location. Generating arepresentation of the geographic location also may include identifying aname of the geographic location. Identifying a name of the geographiclocation may include accessing a data store that includes indications ofnames of geographic locations.

Generating a representation of the geographic location may includeprompting the user of the mobile device for the representation of thegeographic location. Generating a representation of the geographiclocation also may include generating a commercial or social descriptionof the geographic location.

Receiving signals from external devices may include receiving signalsfrom one or more GPS satellites. Each signal received from an externaldevice may include information that specifies a previous electronicmessage that provides information describing the user.

Including the representation of the geographic location within theelectronic message may include overwriting a representation of aprevious geographical location of the mobile device with the generatedrepresentation of the mobile device.

The generated representation of the geographic location may be storedsuch that the representation may be used without being generated againat a later time when the mobile device is at the geographic location.The user of the mobile device may be prompted to select the generatedrepresentation of the geographic location for inclusion in theelectronic message at a next time at which the mobile device is locatedat the geographic location.

The user of the mobile device may be prompted to confirm that therepresentation of the geographic location should be included in theelectronic message. Prompting the user may include prompting the userwhen the geographic location is more than a threshold distance away froma previous geographic location, or prompting the user when thegeographic location has not changed for more than a threshold amount oftime.

Calculating the geographic location may include calculating a latitude,a longitude, or an altitude of the geographic location. Calculating thegeographic location may include calculating the geographic location inresponse to a user request.

The electronic message may indicate the availability of the user to sendand receive electronic messages. The electronic message may includetext, audio data, video data, or graphical data.

The mobile device may be at least one from a group including a personalcomputer, a mobile phone, and a personal digital assistant.

Including the representation of the geographic location within anelectronic message may include identifying an electronic message basedon the representation of the geographic location, or generating anelectronic message based on the representation of the geographiclocation.

A determination may be made as to whether the geographic location is ageographic location for which the representation of the geographiclocation should be included in the electronic message. Including therepresentation of the geographic location in the electronic message mayinclude including the representation of the geographic location in theelectronic message when the geographic location is a geographic locationfor which the representation of the geographic location should beincluded in the electronic message.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a networking system that is used forcommunication of electronic messages.

FIG. 2 is a block diagram of a system for identifying a location of amobile computing device.

FIG. 3 is a flow chart of a process for updating electronic contentstored in association with a user with information describing a locationof the user.

FIG. 4 is an illustration of an interface for specifying a location of amobile computing device.

FIG. 5-7 are illustrations of interfaces displaying electronic messagesthat describe users.

FIG. 8 is an interface for displaying an electronic message describing auser as a response to an electronic message to the user.

FIG. 9 is an interface for displaying electronic messages describingmultiple users.

FIG. 10 is a block diagram of a computing device that may be includedwithin the client and server systems shown in FIG. 1, according to oneimplementation.

DETAILED DESCRIPTION

Electronic content stored in association with a user is updatedautomatically with an indication of a location of the user. A mobiledevice used by the user identifies a location of the mobile device,which is assumed to be the location of the user. The user may be madeable to name or otherwise identify the location identified by the mobiledevice. The mobile device stores an indication of the location withinthe user's electronic content such that the indication of the locationis provided to other users that request and receive the electroniccontent. As the location of the user and the mobile device changes, newlocations are identified and stored within the electronic content suchthat accurate indications of the location of the user are provided. Eachtime the location of the mobile device changes, or periodically, theuser may be notified and asked to confirm that the location is correctand should be included in the electronic content.

FIG. 1 is a block diagram of a networking system 100 that is used fortransmission of instant messages, according to one implementation. Inthis implementation, the system 100 includes an instant message (IM)server 102, a network 106, and client devices 108 a and 108 b. The IMserver 102 is coupled to both the client device 108 a and the clientdevice 108 b through the network 106. The network 106 is a wide-areanetwork (WAN) in some implementations, and a local-area network (LAN) inothers. The client devices 108 a and 108 b may each include a computingdevice, such as the computing device shown in FIG. 11. In certainimplementations, the client devices 108 a and 108 b may be mobiledevices, such as portable computers, cellular telephones, or personaldigital assistants (PDAs).

During operation, the client device 108 a may initiate aninstant-messaging session with the client device 108 b and send one ormore IMs to the client device 108 b during the instant-messagingsession. To do so, the client device 108 a invokes an IM application 110a. In one implementation, a first user manually invokes the IMapplication 110 a. In another implementation, the client device 108 aautomatically invokes the IM application 110 a at start-up. The clientdevice 108 a also may include various other applications that operate atrun-time, such as word-processing applications, web-browserapplications, or mail applications. When a first user on the clientdevice 108 a wishes to begin an instant-messaging session with a seconduser on the client device 108 b, the first user initiates a request.This request includes an address associated with the client device 108b. The IM application 110 a on the client device 108 a sends thisrequest to an IM manager application 104 on the IM server 102 using thenetwork 106.

Upon receipt of this request from the client device 108 a, the IMmanager application 104 uses the address contained within the request tolocate the client device 108 b. The IM manager application 104 thenroutes the request to an IM application 110 b on the client device 108 busing the network 106. The IM application 110 b then processes thisrequest and initiates a new instant-messaging session with the IMapplication 110 a on the client device 108 a. The second user on theclient device 108 b is then notified by the IM application 110 b of thenew session, and the first and second users of the client devices 108 aand 108 b are capable of exchanging IMs during the course of theinstant-messaging session. The client device 108 b also may containother applications, such as word-processing applications, web-browserapplications, or mail applications.

In one implementation, the client device 108 a is capable of sendingmessages to and receiving messages from the client device 108 b throughthe network 106 without the use of the IM server 102. In thisimplementation, the IM applications 110 a and 110 b manage all of the IMfunctionality on the client devices 108 a and 108 b, respectively. Eachof the IM applications 110 a and 110 b is capable of authenticating andlocating other client devices to enable the exchange of messages to andfrom the client devices 108 a and 108 b, respectively.

The client devices 108 a and 108 b include away message repositories 112a and 112 b. The away message repository 112 a includes one or more awaymessages that have been specified by a user of the client device 108 a.Each of the away messages may include information describing the user.For example, an away message may include an indication of a currentlocation or activity of the user. In addition, the away message mayinclude an indication of the availability of the user to send andreceive instant messages. Furthermore, the away message may beidentifiable by a title that may be considered to be part of the awaymessage. In one implementation, the away message may include a profileof the user. The away messages included in the away message repositories112 a and 112 b may include audio data, video data, graphical data,emoticons, and/or text.

The away message repositories 112 a and 112 b may include multiple typesof away messages. For example, the repositories 112 a and 112 b mayinclude online away messages for a user that are provided when the useris available to send and receive electronic messages. Similarly, therepositories 112 a and 112 b may include offline away messages for auser, which are away messages that are provided when the user is notavailable to send and receive electronic messages. The repositories alsomay include profiles that include information describing the user.Location away messages, which specify only user location, and mobileaway messages, which are used when the client devices 112 a and 112 bare mobile devices, also may be stored within the repositories 112 a and112 b.

The user of the client device 108 a may make one of the away messagesstored in the away message repository 112 a accessible to the clientdevice 108 b such that the away message may be transferred to the clientdevice 108 b for processing or for presentation to a user of the clientdevice 108 b. The user of the client device 108 a may select one of theaway messages from the away message repository 112 a based on theinformation included in the away message. If none of the stored awaymessages include desirable information, then the user may specify a newaway message including the desirable information for storage in therepository 112 a. In some implementations, the user of the client device108 a may make multiple away messages included in the repository 112 aaccessible for transfer to the client device 108 b and other clientdevices. The away message that is provided to the other client devicemay depend on an identity of a user of the other client device. Forexample, a first away message may be provided when the user of the otherclient device is a mother of the user of the client device 108 a, and asecond away message may be provided when the user of the other clientdevice is a friend of the user of the client device 108 a.

In one implementation, the away message repositories 112 a and 112 b mayinclude old away messages that are no longer applicable to thecorresponding users. For example, when the user of the client system 108a modifies an original away message, the away message repository 112 amay maintain a copy of the original away message as well as the modifiedaway message. The old away messages may be made accessible, for example,in the form of a web log (e.g., blog) such that more than just a mostrecent away message is accessible. Consequently, other users or systemsthat access the web log may be provided with indications of previousevents, activities, locations, or characteristics of the user, as wellas indications of more recent events, activities, locations, orcharacteristics of the user.

In some implementations, the IM application 110 a or the IM application110 b may be configured to respond automatically to instant messagesreceived at the client devices 108 a and 108 b. In addition, the IMapplications 110 a and 110 b may be configured to perform some functionidentified by the received instant messages. For example, the clientdevice 108 a may represent a mobile device used by a user, and theclient device 108 b may be a desktop computer used by the user. In sucha case, the mobile device may not include the away message repository112 a, due to limited storage and processing capabilities. Instead, awaymessages for the user may be provided from the away message repository112 b included in the desktop computer. The user may send an instantmessage from the mobile device to the desktop computer identifying anaway message included in the away message repository 112 b to be madeavailable to other users. The automatic response to the received instantmessage may indicate that the identified away message has been madeavailable to the other users.

In some implementations, the users of the client devices 108 a and 108 bmay specify user information feeds that periodically provide to otherusers information relating to the users. Alternatively or additionally,the IM server 102 may be configured to aggregate the informationrelating to the users into the user information feeds on behalf of theusers. The user information feed for a user may include any informationrelated to the user, such as entries included in an online journal ofthe user, an away message of the user, a profile of the user, mediafiles of interest to the user, a playlist specifying an order in whichthe user listens to or watches the media files, recent communicationssent and received by the user, and RSS feeds of interest to the user.The client devices 108 a and 108 b or the IM server 102 may periodicallyprovide the user information feeds to other users who have subscribed tothe information feeds. Alternatively or additionally, the client devices108 a and 108 b or the IM server 102 may provide only portions of a userinformation feed that have been added or changed since a previousdistribution of the user information feed.

Referring to FIG. 2, a system 200 is used to identify a geographiclocation of a client system 108 a for use with an IM application 110 a.A GPS application 205 of the client system 108 a communicates withsatellite devices 210 a-210 c to identify a location of the clientsystem 108 a. The client system 108 a also may communicate with a mapserver 215 and a directory server 220 through a network 106. The clientsystem 108 a also includes an away message repository 112 a and a commonname repository 225. The network 106, the client system 108 a, the IMapplication 110 a, and the away message repository 112 a are similar tocorresponding components from FIG. 1.

The GPS application 205 is configured to determine a location of theclient system 108 a. The GPS application 205 may include a GPS receiverand a location determination module. The GPS receiver is configured tocommunicate with the satellite devices 210 a-210 c. Based on the signalsreceived from the satellite devices 210 a-210 c, the locationdetermination module calculates a distance to each of the satellitedevices 210 a-210 c. The location determination module then maydetermine the location of the client system 108 a based on thecalculated distances to the satellite devices 210 a-210 c. The GPSapplication 205 may determine the location of the client system 108 a aslatitude and longitude coordinates, which are also known as GPScoordinates.

The map server 215 provides addresses or other representations oflocations identified by the GPS application 205. For example, the GPSapplication 205 may provide the map server 215 with the latitude andlongitude coordinates identifying the location of the client system 108a. In response, the map server may identify an address, a name, oranother representation of the location of the client system 108 a. Insome implementations, the functionality provided by the map server 215may be included in the GPS application 205.

The directory server 220 also provides information about the location ofthe client system 108 a. More particularly given GPS coordinates or anaddress from the GPS application 205 or the map server 215, thedirectory server 220 may provide a name of the location. For example, ifthe client system 108 a is located at a business, the directory server220 may provide a name of the business in response to the address. Asanother example, if the client system 108 a is located at a residence,the directory server 220 may provide the name of a person that lives atthe residence. In some implementations, the directory server also may beconfigured to provide additional information describing the location,such as a phone number of the location. In some implementations, thefunctionality provided by the directory server 220 may be included inthe GPS application 205.

The common name repository 225 stores alternative representations of thelocations of the client system 108 a that were identified by the GPSapplication 110. For example, the common name repository 225 may storenames and other information describing the locations that were providedby the map server 215 or the directory server 220, or by a user of theclient system 108 a. The stored names and descriptive information forthe previous locations may be used when the client system 108 a issubsequently located at one of the previous locations without having toidentify the name or descriptive information again.

Referring to FIG. 3, a process 300 is used to identify and provide anindication of a location of a user based on a location of a mobiledevice used by the user. The process 300 may be executed by a mobiledevice, such as implementations of the client device 108 a of FIGS. 1and 2 that are mobile devices.

The mobile device first receives signals indicating positions of one ormore external devices (305). For example, the mobile device may receivesignals indicating the position of the satellite devices 215 a-215 c ofFIG. 2. More particularly, a GPS application of the mobile device, suchas the GPS application 205 of FIG. 2, may receive the signals.Alternatively or additionally, the mobile device may receive the signalsfrom other systems with which the mobile device communicates, such ascellular telephone towers. The signals also may indicate an address ofthe mobile device, such as an Internet Protocol (IP) address of themobile device. The mobile device calculates a geographic location of themobile device based on the received signals (310). More particularly,the GPS application may calculate the geographic location of the mobiledevice based on the received signals. Calculating the geographiclocation may include calculating a latitude measurement, a longitudemeasurement, and/or an altitude measurement for the geographic location.The mobile device may use triangulation to calculate the position basedon the signals received from the satellite devices 215 a-215 c or thecellular telephone towers.

The mobile device may generate a representation of the geographiclocation of the mobile device (315). Alternatively, the mobile devicemay generate a representation of a location that is within a thresholddistance from the geographic location. For example, if the mobile deviceis located in a parking lot of a business, the mobile device maygenerate a representation of the business instead of the parking lot ifthe business is within the threshold distance from the parking lot. Therepresentation may be a name or another commercial or social descriptionof the geographic location. For example, the representation of abusiness named “Bill's Bar” on Lake Street may be “Bill's,” “the bar,”“Bill's pub,” “Bill's on Lake,” or another variation of the name andlocation of the business. The representation of the geographic locationalso may include an indication of the geographic location itself. Forexample, a representation of a geographic location may include “Bill'sBar at 13 Lake Street,” in which case “Bill's Bar” is the representationof the geographic location, which is “13 Lake Street.”

In one implementation, the mobile device may contact a map server, suchas the map server 215 of FIG. 2, or a directory server, such as thedirectory server 220 of FIG. 2, to identify the representation of thegeographic location. For example, the mobile device may provide anindication of the geographic location to the map server or the directoryserver, and the map server of the directory server may generate andprovide the representation of the geographic location to the mobiledevice in response.

In another implementation, the mobile device prompts a user of themobile device for a representation of the geographic location. Forexample, a user interface displayed on the mobile device may include anindication of the geographic location that was identified by the mobiledevice, the map server, or the directory server. The user may use theuser interface to specify the representation of the indicated geographiclocation. The mobile device may store a representation of the geographiclocation for later use when the mobile device returns the geographiclocation.

In another implementation, the mobile device may identify therepresentation automatically and may prompt the user for confirmation ofthe automatically identified representation. The mobile device mayprompt the user for confirmation, for example, if the mobile devicedetermines that the geographic location of the mobile device has changedsubstantially (e.g., by more than a threshold distance), or if thegeographic location has not changed for longer than a threshold amountof time.

The mobile device includes the representation in an electronic messagethat provides information describing the user of the mobile device(320). For example, the mobile device may include the representation ofthe geographic location in an away message of the user. The away messagemay be stored in an away message repository that is local to the mobiledevice, such as the away message repository 112 a of FIGS. 1 and 2.Alternatively, the away message may be stored at an IM server throughwhich the user communicates with other users. If the electronic messagealready includes a representation of a previous geographic location ofthe mobile device, the mobile device may overwrite the representation ofthe previous geographic location with the newly identified geographicrepresentation. If the representation of the geographic locationincludes an indication of the geographic location itself, therepresentation and the geographic location may be included in differentparts of the electronic message.

In some implementations, the user of the mobile device may maintainmultiple electronic messages, and each electronic message may be madeavailable to only a subset of other users. For example, the user maymaintain a first electronic message that is provided to family membersand a second electronic message that is provided to friends. In such acase, the representation of the geographic location may be included inonly a subset of the electronic messages. For example, if the user islocated at a bar, the representation of the geographic location may beincluded only in the second electronic message that is provided tofriends of the user. Alternatively or additionally, multiplerepresentations of the geographic location may be generated forinclusion in particular ones of the electronic messages. For example, afirst representation indicating that the user is “out with friends” maybe generated for inclusion in the first electronic message, and anotherrepresentation indicating that the user is “at the bar” may be generatedfor inclusion in the second electronic message.

The mobile device then receives a request for the electronic messagefrom a different user (325). For example, the mobile device receives therequest from a client system used by the different user, such as theclient system 108 b of FIG. 1. In response to the received request, themobile device provides the representation of the geographic location tothe different user as part of the electronic message (330). The mobiledevice may provide the electronic message from the local away messagerepository, or from the IM server. For example, the mobile device mayprovide the electronic message to the different user directly.Alternatively, the mobile device may request that the IM server providethe electronic message to the different user. As a result, the differentuser is made aware of the geographic location of the user of the mobiledevice.

In one implementation, a server side process, such as a process runningon the IM server 102 of FIG. 1, receives GPS coordinates or anotherindication of the location of the mobile device from the mobile device.The server side process identifies a common name (e.g. Starbucks on 9thand M, or RFK stadium, or “GMU computer lab”) based on the indicatedlocation received from the mobile device, for example, using the mapserver 215, the directory server 220, or the common name repository 225of FIG. 2, as described above. The server side process may make thecommon name available in away messages, participant lists, or the commonname repository 225 for access by other users. This common name locationinformation can also be used for purposes of grouping by location,searching by location, or other location-based activities.

The process 300 may be executed by the mobile device multiple times. Forexample, the mobile device may periodically determine the location ofthe mobile device (305, 310). If the location has changed substantiallyfrom a previously determined location, then the electronic message ofthe user of the mobile device may need to be updated. Consequently, themobile device may complete execution of the process 300 to update theelectronic message and to provide the electronic message to other usersafter the electronic message has been updated. Even if the location ofthe mobile device has changed, the user may be prompted before theelectronic message is updated, in case that the user does not desire toupdate the electronic message, for example, because the user anticipatesthat the location of the mobile device will change again soon.

Furthermore, the user may be enabled to indicate when the process 300should be executed. For example, the user may be enabled to manuallyrequest execution of the process 300. Alternatively or additionally, theuser may be enabled to specify a set of locations in which theelectronic message of the user should be updated with the location ofthe user. The mobile device may begin execution of the process 300periodically to determine its location. If the location of the mobiledevice matches one of the previously specified locations, then executionof the process 300 completes to update the electronic message describingthe user.

Some implementations of the process 300 may be executed by an IM server,such as the IM server 102 of FIG. 1. In such implementations, ratherthan identifying the geographic location of the mobile device, the IMserver simply receives the location from the mobile device. The IMserver may generate the representation of the geographic locationlocally (315), or the IM server may receive the representation from themobile device. The IM server then includes the representation in theelectronic message describing the user of the mobile device (320). TheIM server may receive a request for the electronic message (325) and mayprovide the representation as part of the electronic message (330). TheIM server may access and provide the electronic message from the awaymessage repository of the mobile device, or from a local copy of theelectronic message.

Other implementations of the process 300 may not include therepresentation of the geographic location in the electronic messagedescribing the user of mobile device (320). Instead, the representationof the geographic location may be used to identify an appropriateelectronic message from a set of previously specified electronicmessages. The appropriate electronic message may not explicitly indicatethe geographic location of the mobile device. However, the electronicmessage is only an appropriate description of the user when the mobiledevice is at the geographic location. For example, the representation ofthe geographic location may indicate that the mobile device is at aworkplace of the user. Consequently, an electronic message that includesthe text “earning my paycheck” may be identified as an appropriatedescription of the user, based on the geographic location.

Alternatively or additionally, the appropriate electronic message may begenerated automatically based on the representation of the geographiclocation. The automatically generated electronic message may includeaudio data, video data, graphical data, emoticons, or text. For example,if the representation of the geographic location indicates that the useris at his gym, an electronic message including a video of a personrunning, a picture of a barbell, and the text “feeling the burn” may begenerated. The automatically generated electronic message may be storedfor later use in an away message repository corresponding to the mobiledevice, such as one of the away message repositories 112 a or 112 b ofFIG. 1.

Referring to FIG. 4, an interface 400 enables a user of a mobile deviceto generate a representation of an otherwise automatically identifiedgeographic location of the mobile device. The interface 400 may bepresented on the mobile device during execution of the process 300 ofFIG. 3. The interface includes a geographic location indicator 405, aselection list 410 and a text box 415 with which the representation maybe specified, and a button 420 for selecting the specified option.

The geographic location indicator 405 provides an indication of ageographic location of the mobile device. The indicated geographiclocation may be calculated by a GPS application of the mobile device, asdescribed above with respect to operations 305 and 310 of the process300 of FIG. 3. Alternatively or additionally, the mobile device mayaccess a map server or a directory server to identify the indicatedgeographic location, as described above with respect to operation 315 ofthe process 300 of FIG. 3. For example, in the illustratedimplementation, the geographic location indicator 405 includes anaddress that was identified by the map server in response to GPScoordinates provided by the mobile device.

The selection box 410 enables the user of the interface 400 to selectthe representation of the indicated geographic location from among a setof representations of previous geographic locations of the mobiledevice. The representations that are selectable from the selection box410 may have been saved after being generated when the mobile device waslocated at the previous geographic locations. In one implementation, ifa representation of the geographic location indicated by the geographiclocation indicator has been identified and saved previously, then thatrepresentation may be presented as a default value for the selection box410. The options included in the selection box 410 may represent text,audio data, video data, or graphical data.

If a representation corresponding to the indicated geographic locationis not included as a selectable option of the selection box 410, theuser may specify the representation manually using the text field 415.Alternatively or additionally, the text field 415 may be used toidentify a non-textual representation of the indicated geographiclocation. For example, the text field 415 may be used to specify alocation of an image file, an audio file, or a video file that is toserve as the representation of the indicated geographic location.

Selecting the button 420 associates the representation specified by theselection box 410 or the text field 415 with the geographic locationindicated by the geographic location indicator 405. In oneimplementation, if no text is specified in the text field 415, and nooption is selected from the selection box 410, then selecting the button420 sets the indicated geographic location as its own representation. Inanother implementation, the indicated geographic location may beincluded as part of the representation of the geographic location. Insome implementations, the specified representation may be stored inassociation with the indicated geographic location for use when themobile device returns to the indicated geographic location. In someimplementations, selecting the button 420 also may dismiss the interface400.

Referring to FIG. 5, an away message display interface 500 displays anaway message 505 describing a particular user. The user for which theaway message is displayed is identified in a text box 510. The awaymessage display interface 500 also may display separately a profile 515of the user, particularly when the profile is not included in the awaymessage 505. The combination of the away message 505 and the profile 515provides information describing the user to an individual for which theaway message display interface 500 is displayed.

The interface 500 illustrated in FIG. 5 may be displayed prior toexecution of the process 300 of FIG. 3. Consequently, the away message505 and the profile 515 do not include an indication of a geographiclocation of the user. Referring also to FIG. 6, the interface 500 alsomay be displayed after a first execution of the process 300. At the timeof the first execution of the process 300 by a mobile device of theuser, the user and the mobile device may be located at “Sam's Pub at 13Lake Street.” Such a representation of the location of the mobile devicemay be identified and included in the away message 505 as a result ofthe first execution of the process 300. When the away message 505 isrequested and displayed as illustrated in FIG. 6, the away message 505includes the representation of the location.

Referring also to FIG. 7, the interface 500 also may be displayed aftera subsequent execution of the process 300. At the time of the subsequentexecution of the process 300 by the mobile device of the user, the userand the mobile device may have moved from “Sam's Pub” to “Bill's Pizzaat 25 State Street.” Such a representation of the location of the mobiledevice may be identified and included in the away message 505 as aresult of the subsequent execution of the process 300. When the awaymessage 505 is requested and displayed as illustrated in FIG. 7, theaway message 505 includes the representation of the location.

Referring also to FIG. 8, an away message including informationdescribing a user's location may be displayed in an instant messaginginterface 800, which enables instant messages to be sent and received. Asender of instant messages may use the instant messaging interface 800to send an instant message to a recipient for which the process 300 wasexecuted previously.

The instant messaging interface 800 includes a message history box 805that lists the instant messages sent between the sender and therecipient. The message history box 805 also may be referred to as amessage transcript box 805. Each message is presented with an indicationof an identifier by which the sender or the recipient is identified asthe sender of the message. Each message listed in the message historybox 805 also includes the text of the instant message sent by the senderor the recipient. For example, the message history box 805 includes amessage 810 sent by a user with a screen name “MyUser” and a message 815sent by a user with a screen name “Buddy1.” In one implementation, eachmessage listed in the message history box 805 includes a time stamp ofwhen the message was sent. The users that sent the messages 810 and 815are the recipient and the sender, respectively. In some implementations,the message history box may include automatically sent messages thatwere not specified manually by the sender of the recipient. For example,the automatically sent messages may inform the recipient that the senderhas not used the instant messaging interface 800 for more than athreshold amount of time.

In typical implementations, the message history box 805 includes onlythose instant messages sent between the sender and the recipient afterthe interface 800 was displayed initially. In other implementations, theinstant messages reflected in the message history box 805 may be savedwhen the interface 800 is dismissed, for example, such that the messagehistory box 805 may be repopulated with those instant messages when theinterface 800 is displayed again at a later time.

The instant messaging interface 800 also includes a messagespecification box 820 in which the sender may specify a message to besent to the recipient. The sender may enter text to be sent to therecipient in the message specification box 820. The instant messageinterface 800 includes a set of format controls 825 that may be used toformat the text entered in the message specification box 820. Moreparticularly, the controls in the set of format controls 825 enable theuser to change the size, foreground color, background color, style, andeffects of the text entered in the message specification box 820. Theset of format controls 825 also includes controls for inserting objectsthat are not plain text, such as hyperlinks and emoticons, into themessage specification box 820.

After a message has been specified in the message specification box 820,the message may be sent by selecting a send button 825 included in asecond control set 830. After the send button 835 has been selected, thetext that has been entered in the message specification box 820 is sentto the recipient, and the message specification box 820 is cleared. Themessage is added to the message history box 805. The message also isdisplayed in a message history box 805 of an instance of the instantmessaging interface 800 being viewed by the recipient. Also included inthe second control set 830 are controls for warning instant messagesenders, blocking instant messages from particular senders, or addinganother sender to a participant list used by the sender.

The recipient with the identifier “Buddy1” may be unavailable to sendand receive instant messages at a time when the sender with theidentifier “MyUser” sent the message 810. As a result the recipient mayhave chosen a descriptive message to be sent automatically to otherusers, such as the sender, that send the recipient instant messages. Thedescriptive message may include a representation of the geographiclocation of the recipient that was identified and included in thedescriptive message through execution of the process 300 of FIG. 3. Themessage 815, which indicates that the recipient is located at “Sam's Pubat 13 Lake Street,” may represent such a descriptive message, which iswhy the message 815 is labeled as an “AutoResponse from Buddy1.” Themessage 815 may be processed or simply presented to the sender with theinstant messaging interface 800. The sender may continue to send instantmessages to the recipient, if so desired.

Referring to FIG. 9, an away message display interface 900 is similar tothe away message display interfaces 500 of FIGS. 5-7. However, insteadof displaying information describing a single user, the away messagedisplay interface 900 displays information describing multiple users. Inone implementation, the interface 900 is a web page that may bedisplayed in a web browser. In another implementation, the interface 900may be configured for display on a device with limited displaycapabilities, such as a mobile device.

Identifiers 905 a-905 d for the users are displayed on the left side ofthe interface 900. Away messages 910 a-910 d describing the users aredisplayed next to the identifiers 905 a-905 d. A profile of a user maybe displayed next to the identifier of the user in the interface 900,for example, when the profile is not included in the away message forthe user, of when the user has not otherwise indicated that the profileis no to be displayed. For example, the interface 900 includes a profile915 a of the user corresponding to the identifier 905 a and a profile915 b of the user corresponding to the identifier 905 d. In theillustrated implementation, the profiles 915 a and 915 b are displayednext to the identifiers 905 a and 905 d.

One or more of the away messages 910 a-910 d may include arepresentation of a geographic location of a corresponding user. Therepresentation may be included in the away message through execution ofthe process 300 of FIG. 3 on behalf of the corresponding user. Forexample, the away message 910 b for the user corresponding to theidentifier 905 b includes a representation of the location of the user.For example, in the illustrated implementation, the away message 910 bindicates that the user is at “Sam's Pub at 13 Lake Street.”

FIG. 10 is a block diagram of a computing device 1000 that may beincluded within the IM server 102 and/or the client devices 108 a and108 b. The computing device 1000 may represent a general-purposecomputer, a special-purpose computer, or a mobile computing device, suchas a portable computer, a mobile telephone, or a PDA. The computingdevice 1000 includes a processor 1005, a memory 1010, an input/outputcontroller 1015, a GPS receiver 1020, a network adapter 1025, and astorage device 1030. Each of the components 1005, 1010, 1015, 1020,1025, and 1030 are interconnected using a system bus 1035.

The processor 1005 is capable of processing instructions for executionwithin the computing device 1000. In one implementation, the processor1005 is a single-threaded processor. In another implementation, theprocessor 1005 is a multi-threaded processor. The processor 1005 iscapable of processing instructions stored in the memory 1010 or on thestorage device 1025 to display graphical information for a GUI on anexternal input/output device that is coupled to the input/outputcontroller 1015.

The memory 1010 stores information within the computing device 1000. Inone implementation, the memory 1010 is a computer-readable medium. Inone implementation, the memory 1010 is a volatile memory unit. Inanother implementation, the memory 1010 is a non-volatile memory unit.

The input/output controller 1015 manages input/output operations for thecomputing device 1000. In one implementation, the input/outputcontroller 1015 is coupled to an external input/output device, such as akeyboard, a pointing device, or a display unit that is capable ofdisplaying various GUIs, such as the GUIs shown in the previous figures,to a user.

The GPS receiver 1020 is similar to the GPS application 205 of FIG. 2.The GPS receiver 1020 is configured to receive signals from multiple GPSsatellites, such as the satellite devices 210 a-210 c of FIG. 2, and touse the received signals to calculate a location of the computing device1000, for example, as GPS coordinates.

The computing device 1000 uses the network adapter 1025 to communicatewith other network devices. If, for example, the client device 108 a isa mobile device that includes the computing device 1000, the computingdevice 1000 uses its network adapter 1025 to communicate with the hostserver 106 over a wireless connection.

The storage device 1030 is capable of providing mass storage for thecomputing device 1000. In one implementation, the storage device 1030 isa computer-readable medium. In various different implementations, thestorage device 1030 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device.

In one implementation, a computer program product is tangibly embodiedin an information carrier. The computer program product containsinstructions that, when executed, perform one or more methods, such asthose described above. The infounation carrier is a computer- ormachine-readable medium, such as the memory 1010, the storage device1030, or a propagated signal.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A method comprising: determining a geographiclocation of a mobile device associated with a user of a system;determining, using at least one processor, a plurality ofrepresentations associated with the determined geographic location;prompting the user to select a representation from the plurality ofrepresentations associated with the determined geographic location; andif a selection is received, associating the selected representation withan electronic message intended to be viewed by one or more co-users ofthe system.
 2. The method as recited in claim 1, wherein determining ageographic location of a mobile device associated with a user of asystem comprises determining the mobile device has moved a thresholddistance from a first geographic location.
 3. The method as recited inclaim 2, further comprising: determining the mobile device has returnedto the first geographic location; and prompting the user to select arepresentation of the first geographic location that the user previouslyselected for the first geographic location.
 4. The method as recited inclaim 3, wherein the representation of the first geographic location wasselected by the user from a plurality of representations associated withthe first geographic location.
 5. The method as recited in claim 1,wherein determining a geographic location of a mobile device associatedwith a user of a system comprises determining the geographic location ofthe mobile device in response to a user request.
 6. The method asrecited in claim 1, further comprising determining names of locationswithin a predetermined distance of the determined geographic location ofthe mobile device to include in the plurality of representationsassociated with the determined geographic location.
 7. The method asrecited in claim 1, further comprising sending the electronic messageand the selected representation to the one or more co-users of thesystem.
 8. The method as recited in claim 7, wherein sending theelectronic message and the selected representation to the one or moreco-users of the system comprises sending the electronic message and theselected representation to a communications server associated with thesystem.
 9. The method as recited in claim 1, wherein determining ageographic location of a mobile device associated with a user of asystem comprises detecting the geographic location of the mobile deviceupon the user drafting the electronic message on the mobile device. 10.The method as recited in claim 1, wherein determining a geographiclocation of a mobile device associated with a user of a system comprisesdetecting the mobile device has moved to a predetermined location. 11.The method as recited in claim 1, further comprising periodically andautomatically determining the geographic location of the mobile device.12. The method as recited in claim 1, further comprising adding theselected representation to an aggregation of representations ofgeographic locations at which the mobile device has been located. 13.The method as recited in claim 12, wherein the selected representationcomprises a name and an address.
 14. The method as recited in claim 12,further comprising sending the aggregation of representations ofgeographic locations to a co-user of the system.
 15. The method asrecited in claim 14, wherein sending the aggregation of representationsof geographic locations to a co-user of the system comprises sending theaggregation of representations of geographic locations to acommunications server associated with the system.
 16. The method asrecited in claim 1, further comprising adding the electronic message andthe selected representation to an aggregation of one or more electronicmessages associated with the user.
 17. The method as recited in claim 1,further comprising: generating a map associated with the determinedgeographic location of the mobile device; and providing the map at themobile device in connection with the one or more representationsassociated with the determined geographic location.
 18. The method asrecited in claim 17, further comprising indicating a location of themobile device on the map.
 19. The method as recited in claim 1, whereinprompting the user to select a representation from the plurality ofrepresentations associated with the determined geographic locationcomprises prompting the user for a confirmation that a defaultrepresentation associated with the determined geographic location. 20.The method as recited in claim 19, further comprising determining thedefault representation associated with the determined geographiclocation by identifying a representation previously selected by the userfor the determined geographic location.
 21. The method as recited inclaim 1, wherein associating the selected representation with anelectronic message intended to be viewed by one or more co-users of thesystem comprises adding the selected representation to the electronicmessage.
 22. The method as recited in claim 1, wherein the mobile devicecomprises a mobile phone.
 23. The method as recited in claim 1, whereinthe electronic message comprises an instant message.
 24. Anon-transitory computer-readable storage medium comprising a set ofinstructions that, when executed, cause at least one processor toperform steps comprising: determining a geographic location of a mobiledevice associated with a user of a system; determining a plurality ofrepresentations associated with the determined geographic location;prompting the user to select a representation of the plurality ofrepresentations associated with the determined geographic location; andif a selection is received, associating the selected representationassociated with the determined geographic location with an electronicmessage intended to be viewed by one or more co-users of the system. 25.The computer-readable storage medium as recited in claim 24, furthercomprising instructions that, when executed, cause the at least oneprocessor to: populate a user interface provided on the mobile devicewith the plurality of representations; and receive the selection of theselected representation of the determined geographic location from theuser via the user interface.
 26. The computer-readable storage medium asrecited in claim 25, further comprising instructions that, whenexecuted, cause the at least one processor to: generate a map associatedwith the determined geographic location of the mobile device; andinclude the map in user interface provided on the mobile device.
 27. Thecomputer-readable storage medium as recited in claim 26, furthercomprising instructions that, when executed, cause the at least oneprocessor to indicate a location of the mobile device on the map. 28.The computer-readable storage medium as recited in claim 26, furthercomprising instructions that, when executed, cause the at least oneprocessor to: determine the mobile device has moved to a firstgeographic location; and prompt the user to select a representation ofthe first geographic location that the user previously selected for thefirst geographic location.
 29. The computer-readable storage medium asrecited in claim 26, wherein determining a geographic location of amobile device associated with a user of a system comprises determining alocation of the mobile device in response to a user request.
 30. Thecomputer-readable storage medium as recited in claim 29, furthercomprising instructions that, when executed, cause the at least oneprocessor to determine names of locations within a predetermineddistance of the determined geographic location of the mobile device toinclude in the plurality of representations associated with thedetermined geographic location.
 31. The computer-readable storage mediumas recited in claim 26, wherein determining a geographic location of amobile device associated with a user of a system comprises detecting thegeographic location of the mobile device has changed.
 32. Thecomputer-readable storage medium as recited in claim 26, furthercomprising instructions that, when executed, cause the at least oneprocessor to detect the geographic location of the mobile device uponthe user drafting the electronic message on the mobile device.
 33. Thecomputer-readable storage medium as recited in claim 26, whereindetermining a geographic location of a mobile device associated with auser of a system comprises detecting the mobile device has moved to apredetermined location.
 34. The computer-readable storage medium asrecited in claim 33, wherein prompting the user to select arepresentation of the plurality of representations associated with thedetermined geographic location comprises prompting the user for aconfirmation that a default representation associated with thedetermined geographic location is accurate.
 35. The computer-readablestorage medium as recited in claim 34, further comprising instructionsthat, when executed, cause the at least one processor to determine thedefault representation of the determined geographic location byidentifying a representation previously selected by the user for thedetermined geographic location.
 36. The computer-readable storage mediumas recited in claim 26, further comprising instructions that, whenexecuted, cause the at least one processor to add the electronic messageand the selected representation to an aggregation of one or moreelectronic message associated with the user.
 37. The computer-readablestorage medium as recited in claim 26, further comprising instructionsthat, when executed, cause the at least one processor to add theselected representation to an aggregation of representations ofgeographic locations at which the mobile device has been located. 38.The computer-readable storage medium as recited in claim 37, wherein theselected representation comprises a name and an address.
 39. Thecomputer-readable storage medium as recited in claim 38, wherein themobile device comprises a mobile phone.
 40. The computer-readablestorage medium as recited in claim 39, wherein the electronic messagecomprises an instant message drafted on the mobile device.
 41. A methodcomprising: maintaining an information feed associated with a user of acommunications system, wherein the information feed includes:information periodically provided by the user for viewing by co-users ofthe communications system; and a first representation associated with afirst location at which a mobile device associated with the user hasbeen located; identifying an updated location of the mobile deviceassociated with the user; determining, using at least one processor, aplurality of representations associated with the updated location; andupdating the information feed with a second representation selected bythe user from the plurality of representations associated with theupdated location.
 42. The method as recited in claim 41, furthercomprising determining the updated location of the mobile device inresponse to a request from the user.
 43. The method as recited in claim41, further comprising determining the updated location of the mobiledevice upon passage of a predetermined amount of time.
 44. The method asrecited in claim 41, further comprising determining the updated locationof the mobile device upon detection that the mobile device has moved athreshold distance from the first location.
 45. The method as recited inclaim 44, further comprising periodically and automatically determininga geographic location of the mobile device.
 46. The method as recited inclaim 41, further comprising: determining the mobile device has returnedto, or near, the first location; and prompting the user to confirm thefirst representation is an accurate description of a current location ofthe mobile device.
 47. The method as recited in claim 41, furthercomprising prompting the user for a confirmation that the secondrepresentation is an accurate description of the updated location. 48.The method as recited in claim 41, wherein determining the plurality ofrepresentations associated with the updated location comprisesdetermining names of locations within a predetermined distance of theupdated location.
 49. The method as recited in claim 48, wherein thesecond representation comprises a name and an address of the updatedlocation.
 50. The method as recited in claim 49, further comprisingenabling presentation of the plurality of representations associatedwith the updated location to the user.
 51. The method as recited inclaim 50, further comprising receiving a selection of the secondrepresentation from the plurality of representations associated with theupdated location via the mobile device.
 52. The method as recited inclaim 50, further comprising: generating a map showing a region aboutthe updated location; and enabling presentation of the map in connectionwith presentation of the plurality of representations associated withthe updated location.
 53. The method as recited in claim 52, furthercomprising indicating a location of the mobile device on the map. 54.The method as recited in claim 41, wherein the mobile device comprises amobile phone.
 55. The method as recited in claim 41, further comprising:receiving a comment regarding the second representation from a firstco-user of the communications system; and adding the comment to theinformation feed.
 56. The method as recited in claim 41, wherein theinformation feed comprises an aggregation of representations ofgeographic locations at which the mobile device has been located.
 57. Anon-transitory computer-readable storage medium comprising a set ofinstructions that, when executed, cause at least one processor toperform steps comprising: maintaining an information feed associatedwith a user of a communications system, wherein the information feedincludes: information periodically provided by the user for viewing byco-users of the communications system; and a first representationassociated with a first location at which a mobile device associatedwith the user has been located; identifying an updated location of themobile device associated with the user; determining a plurality ofrepresentations associated with the updated location; and updating theinformation feed with a second representation selected by the user fromthe plurality of representations associated with the updated location.58. The computer-readable storage medium as recited in claim 57, furthercomprising instructions that, when executed, cause the at least oneprocessor to: determine the mobile device has returned to, or near, thefirst location; and prompt the user to confirm the first representationis an accurate description of a current location of the mobile device.59. The computer-readable storage medium as recited in claim 57, whereindetermining the plurality of representations associated with the updatedlocation comprises determining names of locations within a predetermineddistance of the updated location.
 60. The computer-readable storagemedium as recited in claim 59, wherein the second representationcomprises a name and an address of the updated location.
 61. Thecomputer-readable storage medium as recited in claim 59, furthercomprising instructions that, when executed, cause the at least oneprocessor to populate a user interface with the plurality ofrepresentations associated with the updated location.
 62. Thecomputer-readable storage medium as recited in claim 61, furthercomprising instructions that, when executed, cause the at least oneprocessor to receive a selection of the second representation via theuser interface.
 63. The computer-readable storage medium as recited inclaim 62, further comprising instructions that, when executed, cause theat least one processor to: generate a map showing a region about theupdated location; and include the map in the user interface.
 64. Thecomputer-readable storage medium as recited in claim 63, furthercomprising instructions that, when executed, cause the at least oneprocessor to indicate a location of the mobile device on the map. 65.The computer-readable storage medium as recited in claim 64, furthercomprising instructions that, when executed, cause the at least oneprocessor to receive a comment regarding the second representation froma first co-user of the communications system; and add the comment to theinformation feed.
 66. The computer-readable storage medium as recited inclaim 65, wherein the information feed comprises an aggregation ofrepresentations of geographic locations at which the mobile device hasbeen located.
 67. The computer-readable storage medium as recited inclaim 64, further comprising instructions that, when executed, cause theat least one processor to determine the updated location of the mobiledevice in response to a request from the user.
 68. The computer-readablestorage medium as recited in claim 64, further comprising instructionsthat, when executed, cause the at least one processor to determine theupdated location of the mobile device upon passage of a predeterminedamount of time.
 69. The computer-readable storage medium as recited inclaim 64, further comprising instructions that, when executed, cause theat least one processor to determine the updated location upon detectionthat the mobile device has moved a threshold distance from the firstlocation.
 70. The computer-readable storage medium as recited in claim69, further comprising instructions that, when executed, cause the atleast one processor to periodically and automatically determine ageographic location of the mobile device.